关于Oracle导出到csv文件的脚本 |
您所在的位置:网站首页 › spool 导出csv删除值的空白 › 关于Oracle导出到csv文件的脚本 |
Oracle就是这么牛,从外部文件导入到Oracle中有N种方法,想把Oracle的数据导出成通用文件的方法却不多,梳理下来大致有三种办法: 1、spool方法 2、DBMS_SQL和UTL_FILE方法 3、python等程序方法 本文主要是第一种方法,使用spool命令实行将sql*plus中的输出的结果复制到一个指定的文件中,直接使用spool off命令为止。spool方法的灵活性比较差,传递变量比较麻烦,好像也不能使用游标,循环和判断语句,但不啻为一种比较简单的方法。 spool方法可以将文件导出到客户端主机的目录下,获取比较容易一些。 spool 有很多常用set参数,这里设置 常用分隔符,标题,是否回显,pagesize和linesize,如下: set colsep' '; //域输出分隔符set echo off; //显示start启动的脚本中的每个sql命令,缺省为onset feedback off; //回显本次sql命令处理的记录条数,缺省为onset heading off; //输出域标题,缺省为onset pagesize 0; //输出每页行数,缺省为24,为了避免分页,可设定为0。set termout off; //显示脚本中的命令的执行结果,缺省为onset trimout on; //去除标准输出每行的拖尾空格,缺省为offset trimspool on; //去除重定向(spool)输出每行的拖尾空格,缺省为offspool中主要难题是构造一个变量,尝试了好多遍,才成功,代码如下: 用execute命令,且变量前要加:冒号 set colsep ,;set feedback off;set heading on;set newp none;set pagesize 10000;set linesize 1000;set trimout on ;var statdate varchar2;execute :statdate:=to_char(sysdate,'yyyy-mm-dd');--导出问题清单一spool c:/oracle/test1.csv;select * from tablea t where statdate=:statdate; spool off ;--导出问题清单二spool c:/oracle/test2.csv;select * from tableb t where statdate=:statdate; spool off ;也可以按如下格式定义变量,但好像只能赋值常量: define fil= 'c:\oracle\exp.txt'prompt *** Spooling to &filspool &filselect * from tab;spool off;纸上得来终觉浅,绝知此事要躬行,其实很多网上的例子都是错的,要想变人为己需要不断的调试。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |